/**
 * Pinganfu.com Inc.
 * Copyright (c) 2003-2013 All Rights Reserved.
 */
package com.huatai.vba.grovvy.base;

import java.io.IOException;

import org.springframework.scripting.ScriptSource;
import org.springframework.util.StringUtils;

/**
 * Groovy脚本数据库数据源，实现了spring的ScriptSource接口供spring来管理Groovy脚本<br>
 * 每次获取解析报文的Groovy脚本时，从已有的缓存 ParserCache 中读取。
 * 
 */
public final class DatabaseScriptSource implements ScriptSource {

	/** 脚本名称 */
	private final String scriptName;

	/**
	 * 构造函数
	 * 
	 * @param scriptName
	 */
	public DatabaseScriptSource(String scriptName) {
		this.scriptName = scriptName;
	}

	/**
	 * @see org.springframework.scripting.ScriptSource#getScriptAsString()
	 */
	public String getScriptAsString() throws IOException {
		// ParserTemplate template = ParserCache.getParserTemplate(scriptName);
		//
		// // 脚本模板配置为空，可能已经被删除，尝试在最后一次删除的模板中查找
		// if (template == null) {
		// template = ParserCache.getLastRemovedTemplate(scriptName);
		// if (template == null) {
		// // 仍然未找到时返回空串
		// return StringUtil.EMPTY_STRING;
		// }
		// }
		return null;
		// return template.getTemplate();
	}

	/**
	 * @see org.springframework.scripting.ScriptSource#isModified()
	 */
	public boolean isModified() {
		return false;
	}

	/**
	 * @see org.springframework.scripting.ScriptSource#suggestedClassName()
	 */
	public String suggestedClassName() {
		return StringUtils.stripFilenameExtension(this.scriptName).toLowerCase();
	}

}
